草庐IT

Javascript parseFloat 和空值

全部标签

c# - 为什么 C# 不允许锁定空值?

C#不允许锁定空值。我想我可以在锁定它之前检查该值是否为null,但是因为我没有锁定它,另一个线程可能会出现并使该值变为null!我怎样才能避免这种竞争条件? 最佳答案 您不能锁定空值,因为CLR没有地方可以附加SyncBlock,这允许CLR通过Monitor.Enter/Exit同步对任意对象的访问(这就是lock内部使用) 关于c#-为什么C#不允许锁定空值?,我们在StackOverflow上找到一个类似的问题: https://stackoverfl

c# - 用最小起订量模拟一个返回空值的更新方法

在我的测试中,我将数据定义为List有一些记录。我想设置最小起订量的方法Update,此方法接收用户id和string更新。然后我得到IUser并更新属性LastName我试过这个:namespaceTests.UnitTests{[TestClass]publicclassUsersTest{publicIUsersMockUsersRepo;readonlyMock_mockUserRepo=newMock();privateList_users=newList();[TestInitialize()]publicvoidMyTestInitialize(){_users=newL

c# - 为什么 EF 生成带有不必要的空值检查的 SQL 查询?

我遇到了EF在搜索字符串字段时创建糟糕查询的问题。它以懒惰的程序员的风格生成了一个查询,以包含强制扫描整个索引的空检查。考虑以下查询。查询1varp1="x";varr1=ctx.Set().FirstOrDefault(subject=>p1.Equals(subject.StringField));查询2conststringp2="x";varr2=ctx.Set().FirstOrDefault(subject=>p2.Equals(subject.StringField));查询1产生WHERE(('x'=[Extent2].[StringField])OR(('x'ISNU

c# - C# 中泛型参数的空值或默认比较

我有一个这样定义的通用方法:publicvoidMyMethod(TmyArgument)我要做的第一件事是检查myArgument的值是否是该类型的默认值,如下所示:if(myArgument==default(T))但这不能编译,因为我不能保证T会实现==运算符。所以我将代码切换为:if(myArgument.Equals(default(T)))现在可以编译了,但是如果myArgument为null则会失败,这是我正在测试的内容的一部分。我可以像这样添加一个显式空检查:if(myArgument==null||myArgument.Equals(default(T)))现在这对我

c# - 带空值的 LINQ Max()

我有一个列表,其中包含一堆点(带有X和Y分量)。我想获得列表中所有点的MaxX,如下所示:doublemax=pointList.Max(p=>p.X);问题是当我在列表中有一个空值而不是一个点时。解决此问题的最佳方法是什么? 最佳答案 好吧,你可以过滤掉它们:pointList.Where(p=>p!=null).Max(p=>p.X)另一方面,如果您希望将null视为具有X坐标0(或类似值)的点,您可以这样做:pointList.Max(p=>p==null?0:p.X)请注意,如果序列为空,这两种技术都会抛出异常。一种解决方法

c# - 禁止 XmlSerializer 发出空值类型

请考虑以下标记为可为null的XmlElement的Amount值类型属性:[XmlElement(IsNullable=true)]publicdouble?Amount{get;set;}当可空值类型设置为null时,C#XmlSerializer结果如下所示:我希望XmlSerializer完全抑制该元素,而不是发出该元素。为什么?我们使用Authorize.NET进行在线支付,如果存在此null元素,Authorize.NET将拒绝请求。当前的解决方案/解决方法是根本不序列化Amount值类型属性。相反,我们创建了一个补充属性SerializableAmount,它基于Amou

c# - 为什么具有可为空值的结构的 HashSet 非常慢?

我调查了性能下降并跟踪它以减慢HashSets。我有用作主键的具有可为空值的结构。例如:publicstructNullableLongWrapper{privatereadonlylong?_value;publicNullableLongWrapper(long?value){_value=value;}}我注意到创建一个HashSet出奇地慢。这是一个使用BenchmarkDotNet的例子:(Install-PackageBenchmarkDotNet)usingSystem.Collections.Generic;usingSystem.Linq;usingBenchmark

c# - 为什么 .ToString() 在空字符串上会导致空错误,而 .ToString() 在具有空值的可空 int 上工作正常?

selectedItem有两个字段:整数?_成本string_serialNumber在此示例中,selectedItem的_cost和_serialNumber均为空。我正在通过它们的属性阅读selectedItem的字段,并用它们的值填充文本框,当...TextBox1.Text=selectedItem.Cost.ToString();//noerrorTextBox2.Text=selectedItem.SerialNumber.ToString();//error我明白SerialNumber.ToString()是多余的(因为它已经是一个字符串),但我不明白为什么会导致这个

c# - Entity Framework 6 GUID 作为主键 : Cannot insert the value NULL into column 'Id' , 表 'FileStore';列不允许空值

我有一个主键为“Id”的实体,它是Guid:publicclassFileStore{publicGuidId{get;set;}publicstringName{get;set;}publicstringPath{get;set;}}还有一些配置:protectedoverridevoidOnModelCreating(DbModelBuildermodelBuilder){modelBuilder.Entity().Property(x=>x.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);base.

c# - 如何在没有无限递归的情况下检查 '==' 运算符重载中的空值?

下面会导致==运算符重载方法无限递归Foofoo1=null;Foofoo2=newFoo();Assert.IsFalse(foo1==foo2);publicstaticbooloperator==(Foofoo1,Foofoo2){if(foo1==null)returnfoo2==null;returnfoo1.Equals(foo2);}如何检查空值? 最佳答案 使用ReferenceEquals:Foofoo1=null;Foofoo2=newFoo();Assert.IsFalse(foo1==foo2);public